﻿//  This file is part of NHibernate.ReLinq.Sample a sample showing
//  the use of the open source re-linq library to implement a non-trivial 
//  Linq-provider, on the example of NHibernate (www.nhibernate.org).
//  Copyright (C) 2005-2009 rubicon informationstechnologie gmbh, www.rubicon.eu
//  
//  NHibernate.ReLinq.Sample is based on re-motion re-linq (http://www.re-motion.org/).
//  
//  NHibernate.ReLinq.Sample is free software; you can redistribute it 
//  and/or modify it under the terms of the MIT License 
// (http://www.opensource.org/licenses/mit-license.php).
// 
using System;
using Remotion.Collections;

namespace NHibernate.ReLinq.Sample.UnitTests.DomainObjects
{
    public class Location
    {
        public virtual Guid NHibernateId { get; protected set; }

        public virtual string Street { get; set; }
        public virtual string No { get; set; }
        public virtual string City { get; set; }
        public virtual Country? Country { get; set; }
        public virtual int ZipCode { get; set; }

        public virtual Person Owner { get; set; }

        public static Location NewObject()
        {
            return new Location();
        }

        public static Location NewObject(string Street, string No, Country Country, int ZipCode, string City)
        {
            var location = NewObject();
            location.Street = Street;
            location.No = No;
            location.Country = Country;
            location.ZipCode = ZipCode;
            location.City = City;
            return location;
        }


    }

    public enum Country
    {
        Austria = 0,
        Australia = 1,
        BurkinaFaso = 2
    }
}